20
תגובות

id באורך קבוע במסד

פתח mmm ,
אני מעוניין לקבוע לכל שורה במסד ID, באורך מסוים.
נניח 5 מספרים, Auto Increment.
זה אפשרי? איך?

20 תשובות

avatar ענה intval ב 12 לאוקטובר 2013 #

אתה יכול להתחיל את ה autoincrement מ 9999 וכל השורות הבאות יהיו בעורך של חמש.
רק שאתה לא יכול להגביל את זה לא לעבור את 99999. זה יעבור וימשיך כרגיל.

ALTER TABLE tbl AUTO_INCREMENT = 9999;


אחרי זה השורה הבאה תהיה 10000

avatar ענה mmm ב 12 לאוקטובר 2013 #

איך מערכת VB יוצרת ID באורך קבוע, אקראי?

avatar ענה intval ב 12 לאוקטובר 2013 #

למה ליצור אותם באורך קבוע בכלל?

avatar ענה mmm ב 12 לאוקטובר 2013 #

למה? זה משמעותי לאתר חדש, כשרואים שהכתבה העדכנית ביותר היא q?id=8 זה יוצר תחושה של אתר ריק.
אמנם רוב האנשים לא מסתכלים על זה, אבל יש גולשים ששמים לב, ומבינים בזה.

avatar ענה ldbrgr ב 13 לאוקטובר 2013 #

תעשה משהו בסגנון

q?title=id+באורך+קבוע+במסד

וככה גם לקדם את האתר וגם לנמוע תחושה של "ריק"
(כאילו תשלוף את המידע לפי שם ולא לפי ID, כדי למנוע כפילויות עדיף גם וגם..)
בהצלחה.

avatar ענה OrelBeY ב 13 לאוקטובר 2013 #

ואם כבר מדברים על זה, כדאי לך להשתמש במקפים במקום בפלוסים. נוח יותר, מקובל יותר.

avatar ענה mmm ב 13 לאוקטובר 2013 #

כבר השתמשתי בזה בעבר, זה קצת בעייתי באתר הספציפי הזה כי אני מנסה ליצור קישורים קצרים ככל האפשר, זה מאד מאריך את הקישורים בגלל הURL ENCODE.

avatar ענה intval ב 13 לאוקטובר 2013 #

לדעתי אתה מתעסק בתפל.
אם מישה יראה ID=8 במקום 8000 אז הוא מיד ייצא מהאתר שלך ולא יקרא את התוכן המעולה שלך או את מה שהוא חיפוש בגוגל?
או אם הקישור ארוך מדי אז הוא לא ילחץ עליו בכל מקרה בתוצאות החיפוש?
כל אלו משחקים תפקיד כל כך כל כך מזערי שאני בספק אם תאבד בגלל זה גולש אחד מתוך מאה אלף, כל עוד האתר שלך מציעה משהו מועיל לגולשים

במקום זה תוכל להשקיע את הזמן בהזנת תכנים באתר, כדי שלא יראה ריק. שגם זה בכלל לא בעיה.

avatar ענה mmm ב 13 לאוקטובר 2013 #

קודם כל, כן, זה מאד מעצבן אנשים להעתיק קישור ארוך כל כך שהוא תופס 8-9 שורות בצאט ממוצע.

בנוגע לID, זו הבעיה, שהתכנים הם של המשתמש, לא שלי, מה שמונע ממני התערבות.
ולהעלות 300 תכנים ראשוניים בשמות שונים זה לא פשוט...

avatar ענה OrelBeY ב 13 לאוקטובר 2013 #

זו בהחלט בעיה, אבל זה שווה את זה. כתובת של עמוד אינטרנט צריכה להיות מובנת לגולש (בניגוד לעוגיות וכדו'), אחרת היא לא הייתה מוצגת, ולא הייתה משמשת תפקיד חשוב כל כך בהגשת העמוד לגולש.
את הבעיה שהצגת אפשר לעקוף. אני הייתי ממליץ על יצירת שני מבני כתובות:
1. ID בלבד.
2. כותרת שאנשים יבינו (אני הייתי ממליץ לעשות היררכיה של קטגוריות אם זה רלוונטי), נוסף על ID (כדי שאחזור המידע לא יגזול הרבה משאבים).
אתה מרוויח מהכתובת השנייה - מנועי חיפוש ונוחות גלישה. את הכתובת הראשונה ספק בתור קישור קבוע (Permalink) שיהיה בעמוד. על מנת למנוע כפילות תוכן השתמש בתגית קנוניקל (Canonical) ותגדיר את הכתובת השנייה ככתובת הראשית.

avatar ענה mmm ב 13 לאוקטובר 2013 #

חברים אתם סוטים מהנושא, ביקשתי פתרון קיבלתי יעוץ אישי.
תאמינו לי, אני מודע לכל התועלת של קישורים כאלו, וזה פשוט לא מדבר אלי, מהסיבה הפשוטה, שאני לא צריך לקדם את האתר בגוגל.
אני כן צריך קישור קצר ואסטטי.
אתם יכולים לעזור לי?

avatar ענה OrelBeY ב 13 לאוקטובר 2013 #

אנחנו כאן מנסים להסתכל מעבר לפרטים שמבקשים, ולהרחיב. אני מתנצל אם זה היה יותר מדי ועל כך שלא עניתי קודם על השאלה.

MySQL מאפשר לך לקבוע מהיכן להתחיל את הספירה האוטומטית. הוא מאפשר לך לקבוע גם כמה מספרים לקפוץ בכל פעם. הוא לא מאפשר לך להשתמש באלגוריתם שימצא מספרים רנדומליים; זה פשוט לא התפקיד שלו.
אם אתה בכל זאת רוצה לעשות את זה, אתה יכול להעביר את האחריות על זה ל-PHP עצמה. כתוב פונקציה שתעשה לך את זה (קח מגוגל אם אתה רוצה; לא חסר), רק אל תשכח שכל פעם תצטרך לבדוק שהמפתח לא בשימוש כבר.

avatar ענה mmm ב 13 לאוקטובר 2013 #

לא צריך להתנצל, אתה לא חייב לי משהו.
בכל אופן תודה רבה על התשובה, עזרת לי מאד :)

avatar ענה OrelBeY ב 13 לאוקטובר 2013 #

בשמחה. :)

avatar ענה ldbrgr ב 13 לאוקטובר 2013 #

אתה גם יכול להמיר מבסיס 10 לבסיס 62 (כמו יוטיוב אם אני לא טועה) וככה לא רואים 1..2..3 אלה אותיות באנגלית שנראות "רנדיומליות" אבל למעשה הם בסדר מסוים.
זה עדיף כי ברגע שאתה יוצר מחרוזת רנדיאמאלית אתה צריך לבדוק במסד עם המפתח הזה קיים וזה סוג של בזבוז..

משהו כזה (זה פסודו קוד, הוא לא באמת יעבוד אבל זאת הלוגיקה בראש שלי.. אם לא הבנת משהו, שאלנה..)

avatar ענה OrelBeY ב 14 לאוקטובר 2013 #

רעיון מצוין, ובאמת טוב יותר. :)

avatar ענה mmm ב 14 לאוקטובר 2013 #

באמת רעיון מצויין, אני איישם אותו.

avatar ענה mmm ב 14 לאוקטובר 2013 #

רק בעיה אחת: יש "מחלוקת" בין מגוון פתרונות המרה מבסיס 10 לבסיס 62, חלקן טוענות ש-'122555' בבסיס 10, שווה ל Vsh בבסיס 62, וחלקן טוענות ששווה ל- 'vSH'...

avatar ענה mmm ב 14 לאוקטובר 2013 #

לא משנה, הבנתי את החשבון.

avatar ענה ldbrgr ב 14 לאוקטובר 2013 #

..